Seed depth auto-learn system associated with a seed depth device for an agricultural planter

ABSTRACT

A seed depth device for an agricultural planter includes an electric motor, an actuator, a stop, a controller, and a seed depth auto-learn system. The actuator is driven by the electric motor, and is constructed and arranged to move between a home position and a full extension position. The stop is proximate to the actuator when in the home position. The controller includes a computing processor and a computer readable storage medium configured to control the electric motor. The seed depth auto-learn system is, at least in-part, stored and executed by the controller. The seed depth auto-learn system is configured to learn the home position based, at least in-part, on the actuator stalling upon the stop.

CROSS-REFERENCES TO RELATED APPLICATIONS

This patent application claims priority to U.S. Provisional PatentApplication No. 62/315,256, filed Mar. 30, 2016 which is incorporatedherein by reference in its entirety.

BACKGROUND OF THE INVENTION

The present disclosure relates to seed depth devices of agriculturalplanters, and more particularly, to a seed depth auto-learn systemassociated with the seed depth device.

Agricultural planters, may include a multitude of motorized devices suchas down force devices, seed plate devices, and seed depth devices. Eachdevice may include a computer-based controller, a motor, and anactuator. The controller may be configured to store various operatingparameters and other data to properly operate the motor to drive theactuator. With regard to seed depth devices, the controller may need toknow such parameters as an actuator home position, an actuator fullextension position, full actuator travel distance, and others.

During, for example, maintenance operations of the seed depth device,adjustment of the actuator may be required to achieve the correct homeposition. Typically, such adjustments to the seed depth device areperformed manually. Unfortunately, manual adjustments are prone to humanerror and inconsistencies, and may require considerable resources andtime.

SUMMARY OF THE INVENTION

In one embodiment of the present disclosure, a seed depth device for anagricultural planter includes an electric motor, an actuator, a stop, acontroller, and a seed depth auto-learn system. The actuator is drivenby the electric motor, and is constructed and arranged to move between ahome position and a full extension position. The stop is proximate tothe actuator when in the home position. The controller includes acomputing processor and a computer readable storage medium configured tocontrol the electric motor. The seed depth auto-learn system is, atleast in-part, stored and executed by the controller. The seed depthauto-learn system is configured to learn the home position based, atleast in-part, on the actuator stalling upon the stop.

In another embodiment of the present disclosure, a computer programproduct for learning seed depth positioning of a seed depth deviceincludes a positive direction stall module. The positive direction stallmodule is configured to: initiate a first positive motion of the seeddepth device in a positive direction for a predetermined first distance;determine if the seed depth device is stop-stalled upon cease of thefirst positive motion; initiate a second positive motion in the positivedirection for a predetermined second distance if not stop-stalled;determine if the seed depth device is stop-stalled upon cease of thesecond positive motion; and record a home position after the seed depthdevice has stop-stalled.

These and other advantages and features will become more apparent fromthe following description taken in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other features, and advantages ofthe invention are apparent from the following detailed description takenin conjunction with the accompanying drawings in which:

FIG. 1 is a schematic of an agricultural planter;

FIG. 2 is a schematic of a seed depth device of the agricultural planterillustrated in a home position and a fully extended position;

FIG. 3 is a schematic of the seed depth device similar to FIG. 2, butillustrated in an obstructed position;

FIG. 4 is a schematic of a seed depth auto-learn system of the seeddepth device;

FIG. 5 is a flow diagram of a method of operating a positive directionstall module of the seed depth auto-learn system;

FIG. 6 is a flow diagram of a method of operating a full negative travelmodule of the seed depth auto-learn system; and

FIG. 7 is a flow diagram of a method of operating a return to homemodule.

DETAILED DESCRIPTION

Referring now to the Figures, where the invention will be described withreference to specific embodiments, without limiting same, FIGS. 1-6describe various embodiments of a seed depth planter system of anagricultural planter configured to auto-learn a seed depth position.

Referring to FIG. 1, an agricultural planter 20 (i.e., farmingequipment) may include at least one down force device 22, at least oneseed plate device 24, at least one seed depth device 26, a mastercontroller 28, and a user interface 30. The devices 22, 24, 26 may eachserve separate and distinct functions toward overall operation of theagricultural planter 20. The devices 22, 24, 26 may generally bedistributed in at least one row (i.e., three illustrated as 32, 34, 36)with each row having at least one of each device 22, 24, 26.

The down force device 22 may include a controller 22A, an electric motor22B that may be brushless, and an actuator 22C that may be mechanical.The seed plate device 24 may include a controller 24A, an electric motor24B that may be brushless, and an actuator 24C that may be mechanical.The seed depth device 26 may include a controller 26A, an electric motor26B that may be brushless, and an actuator 26C that may be mechanical.Each motor 22B, 24B, 26B may be the same type of motor having the sameor similar manufacturer specifications (i.e., same rated horse power,same rated speed, etc.). However, through wear and/or manufacturingtolerances, the motors 22B, 24B, 26B, and/or a new replacement motor foruse in any of the motorized devices 22, 24, 26, may have undesired,different, operating characteristics. The differing operatingcharacteristics may be associated with such factors as electrical coilresistance, magnetic strength, commutation sensor attributes, andothers. In one, non-limiting, embodiment, the motors 22B, 24B, 26B maybe three-phase, brushless, motors.

The actuators 22C, 24C, 26C may be different from one-another performingdifferent functions, thus having different operating parameters that maygenerally be controlled by the respective controllers 22A, 24A, 26A. Itis understood that the devices 22, 24, 26 including the associatedactuators may be commonly known by one having skill in the art ofagricultural planters.

Each controller 22A, 24A, 26A of the respective motorized devices 22,24, 26 may include a computing processor 38 (e.g., microprocessor) and astorage medium 40 that may be computer writeable and readable. Thecontrollers 22A, 24A, 26A may store operating parameters of therespective motors 22B, 24B, 26B, operating characteristics of therespective motors 22B, 24B, 26B, operating parameters of the respectiveactuators 22C, 24C, 26C, maintenance history, operation history, andother data. Data may be collected automatically through execution ofsoftware, may be pre-programmed into the storage mediums 40, and/or maybe entered by a user via the user interface 30, and assistance via useof any variety of electronic readers 41 (e.g., bar code reader).

Similarly, the master controller 28 may include a computing processor 42(e.g., microprocessor) and a storage medium 44 that may be computerwriteable and readable. In one embodiment, the master controller 28 isconfigured to handle higher order tasks relative to the tasks of thecontrollers 22A, 24A, 26A. In one embodiment, the user interface 30 maycommunicate directly with the master controller 28, that in-turncommunicates with the controllers 22A, 24A, 26A. For example, the userinterface 30 may display user prompts commanded by the master controller28, and through the user interface, the master controller 28 may assista user in the use of the reader 41 and downloading of data therefrom.The user interface 30 may include a display screen 46 that may beinteractive for conveying information, and/or prompting a user to makevarious selections.

A communication pathway 50 may extend between the master controller 28and the user interface 30, and may be hardwired or wireless. In oneembodiment, the user interface 30 may be an integral part of the mastercontroller 28 (i.e., physically located with the master controller 28).In another embodiment, the user interface 30 may be mobile (e.g.,tablet, smart phone, and others).

Communication pathways 52 may extend between the master controller 28and each controller 22A, 24A, 26A, and may be hardwired or wireless. Inone embodiment, the master controller 28 and the motorized devices 22,24, 26 may be mounted to a common support structure 54 of the machine 20and the pathways 52 may thus be hardwired for robust communications. Itis further contemplated and understood that other configurations of thecontrollers 22A, 24A, 26A, 28 are plausible. For example, the mastercontroller 28 may be configured to include the functions of thecontrollers 22A, 24A, 26A. Alternatively, each row 32, 34, 36 maygenerally include only one, respective, controller configured to controlthe functions and store various parameters of the devices 22, 24, 26 forthe respective row.

Referring to FIGS. 2 and 3, the seed depth device 26 may includeopposite stops 60, 62 with the actuator 26C generally travelingthere-between. The stops 60, 62 may be spaced from one-another by adistance that is greater than a full travel distance 74 that theactuator 26C travels during normal operation. During normal operation,the seed depth device 26 may travel between, and includes, a homeposition 68 and a full extension position 70, see FIG. 2. In operation,the actuator 26C may be driven by the motor 26B in a positive direction(see arrow 64) toward the stop 60, and may be driven in an oppositenegative direction (see arrow 66) toward the stop 62. When the actuator26C is in the home position 68, the actuator 26C may be proximate to,but may not contact, the stop 60. When the actuator 26C is in the fullextension position 70, the actuator 26C may be proximate to, but may notcontact the stop 62. During normal operation, the prevention of actuator26C contact with either stop 60, 62 is generally controlled by thecontroller 26A (see FIG. 1) that knows the full travel distance 74, andprevents a stall scenario that may cause undesirable wear upon the seeddepth device 26.

Referring to FIG. 4, the seed depth device 26 also includes a seed depthauto-learn system 80 that may, at least in-part, be software based. Theseed depth auto-learn system 80 may include a positive direction module200, a full negative travel module 300, and a return to home module 400.The seed depth auto-learn system 80 may include, or is supported by,other components of the seed depth device 26 including the devicecontroller 26A, the master controller 28, the stops 60, 62, and othercomponents. The positive direction module 200 is generally configured todetect and record an “unverified” home position based on a stallcondition. The full negative travel module 300 is generally configuredto verify the home position or otherwise detect an impediment stall. Thereturn to home module 400 is generally configured to detect anydirection impediment stalls, and if no such stalls exist, then returnthe actuator 26C to the verified home position. It is contemplated andunderstood that the sequence of operation, or execution, of the modules200, 300, 400 may be changed.

Referring to FIGS. 2 through 4, when the seed depth auto-learn system 80is in operation, the seed depth device 26 is generally not operatingnormally as previously described. For example, when the system 80 is inoperation, the actuator 26C may be intentionally “stalled” upon eitherof the stops 60, 62 (i.e., stop-stalled position) that is generally notthe same as the home and full extension positions 68, 70. Moreover, whenoperating in the seed depth auto-learn system 80, the seed depth device,and/or the master controller 28, may be capable of recognizing animpediment-stalled position 72 (see FIG. 3) that may occur when, forexample, an obstruction is in the path of actuator travel. The system 80may be capable of overcoming such an impediment-stall during the processof learning seed depth travel.

Referring to FIGS. 4 and 5, the seed depth auto-learn system 80 mayinitiate operation at block 100, wherein the system initiation is calledby, for example, the master controller 28. At block 202, the positivedirection stall module 200 may determine if the actuator 26C is stalled.The inquired stalled state would include the stop-stalled position(i.e., the actuator 26C makes contact with the stop 60) and theimpediment-stalled position 72 previously described. If “yes” to block202, and at block 204, the module 200 sets an ignition message to falsethat generally turns off the actuator to cease attempted motion. Atblock 206, the module 200 sets a stored, unverified, home position at aprescribed distance away from the current location (i.e., stalledposition). The prescribed distance may be associated with a prescribednumber of revolutions of the motor 26B. In the present example, theprescribed distance may be represented by a subtraction of about tworevolutions where the total or full travel distance 74 (see FIG. 2) maybe associated with about twenty-three revolutions of the motor 26B. Inthe present example, the negative two revolutions from the stop 60 isgenerally associated with the home position 68 previously described.

At block 208, the positive direction stall module 200 may set a motorposition counter to zero (i.e., the unverified home position 68). Thismay be a reset where the controller 28 may remember the unverified homeposition 68. At block 210, the module 200 may set a saved position flagto zero. This setting may generally inform the master controller 28 thatthe actuator 26C is not yet fully setup, and therefore is not yet fullyfunctional. After block 210, the seed depth auto-learn system 80 mayadvance to the full negative travel module 300. It is understood thatthe term “unverified” with reference to home position is an indicationthat the stop-stall may not have occurred via contact of the actuator26C with the stop 60, but instead may be an unexpected and unknownimpediment stall.

If “no” with regard to block 202, the positive direction module 200 mayadvance to block 216. At block 216, the module 200 may incrementallyincrease a previous actuator command, causing the actuator 26C toincrementally move further in the positive direction toward the stop 60.This is generally repeated until the actuator 26C is stop-stalled, notat, but proximate to the home position 68. Generally and at block 216,the actuator may not be stalled, but is not moving. The actuator 26C maynot be moving because the initial command to move the actuator in thepositive direction 64 may not have been large enough.

Referring to FIG. 6, at block 302, the full negative travel module 300may set an ignition message to true. This setting may generally turn onthe device 26, or actuator 26C, to attempt motion. At block 304, themodule 300 may set a target position to the full extension position. Atblock 306, the module 300 may determine if the actuator 26C is stalled.This stall may be a stop-stall wherein the actuator 26C makes contactwith the second stop 62 because the original stall detected by thepositive direction stall module 200 is an impediment-stall.Alternatively, the stall may be an impediment-stall. If “no” and atblock 308, the module 300 may determine if the actuator 26C reached thecommanded position (i.e., home position). If “no” with reference toblock 308, the module 300 may return to start and/or block 302. In onescenario, block 308 may generally operate as an exit loop if, forexample, the master controller 28 inadvertently goes off-line.

In general, block 306 addresses both types of stalls including animpediment stall and a stop-stall. If the actuator at block 306 isstalled via the stop-stall (i.e., contact of the actuator 26C with thestop 62), this indicates the stall detected by the positive directionstall module 200, which was assumed to be a stop-stall (i.e., contact ofthe actuator 26C against stop 60) is in actuality an impediment-stall.Therefore the “unverified” home position is not the “actual” homeposition at all, and execution of the seed depth auto-learn system 80fails. The stops 60, 62 are fixed and positioned from one-another at adistance associated with the full actuator travel distance 74 that isconstant, prescribed, and known by the controller 28.

If “yes” with regard to block 306 (i.e., the impediment-stall or astop-stall), the full negative travel module 300 may advance to block312. At block 312, the module 300 may set an ignition message to false.This setting may generally turn off the device 26, and/or generallycease any attempted motion of the actuator 26C. At block 314, the module300 may set a learning error flag to true. This setting may initiate,for example, an error signal to the master controller 28. At block 316,the module 300 may set a saved position flag to zero. This may cause,for example, the master controller 28 not to use the associated seeddepth device 26. Consequently and at block 318, the seed depthauto-learn system 80 may terminate since execution was not successful.

If “yes” with regard to block 308, this verifies that the previouslyunverified home position recorded my module 200 is the actual homeposition, and the full negative travel module 300 may advance to block320. At block 320, the module 300 may set an ignition message to false.This may generally turn off the motor 26B. At block 322, the module 300may set a learning error flag to false. This may inform the mastercontroller 28 that not error exists. At block 324, the module 300 mayset a position check flag to false. This may generally mean, and mayinform the master controller 28, that the system 80 has not yetcompleted positioning of the seed depth device 26. After block 324, theseed depth auto-learn system 80 may proceed to the return to home module400.

Referring to FIG. 7 and at block 402, the return to home module 400 maystart by setting an ignition message to true. This may generally startthe motor 26B. At block 404, the module 400 may set a target position tothe verified home position 68. At block 406, the module 400 maydetermine if the actuator 26C is impediment-stalled. For example, suchan impediment-stall may be directional, or may not have existed at thetime module 200 and/or module 300 were executed. If “no” with regard toblock 406, the module 400 may advance to block 408. At block 408, themodule 400 may set an ignition message to false that may generally turnoff the actuator to cease attempted motion. At block 410, the module 400may set the learn position logic to true. This generally informs themaster controller 28 that the seed depth auto-learn system 80 hassuccessfully completed execution. A user may be notified, via the userinterface 30, that the determination of seed depth, or seed depthposition, was successful.

If “yes” with regard to block 406, the return to home module 400 mayadvance to block 416. At block 416, the module 400 may set an ignitionmessage to false that generally turns off the actuator to ceaseattempted motion. At block 418, the module 400 may set a learn positionlogic to false. This may generally inform the master controller 28 thatthe seed depth auto-learn system 80 did not learn the positioncorrectly. At block 420, the module 400 may set a learning error flag totrue. This setting may initiate, for example, an error signal to themaster controller 28. At block 420, the seed depth auto-learn system 80terminates as not being successful. A user may be notified, via the userinterface 30, that the determination of seed depth, or seed depthpositioning, was not successful.

Advantages and benefits of the present disclosure includes a system thatsupports an automated method of learning and establishing a homeposition of an actuator and then ensuring that full travel of theactuator has not been blocked.

The present disclosure may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block orseries of blocks in the flowchart or block diagrams may represent amodule, segment, or portion of instructions, which comprises one or moreexecutable instructions for implementing the specified logicalfunction(s). In some alternative implementations, the functions noted inthe block may occur out of the order noted in the figures. For example,two blocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts or carry outcombinations of special purpose hardware and computer instructions.

While the invention has been described in detail in connection with onlya limited number of embodiments, it should be readily understood thatthe invention is not limited to such disclosed embodiments. Rather, theinvention can be modified to incorporate any number of variations,alterations, substitutions or equivalent arrangements not heretoforedescribed, but which are commensurate with the spirit and scope of theinvention. Additionally, while various embodiments of the invention havebeen described, it is to be understood that aspects of the invention mayinclude only some of the described embodiments. Accordingly, theinvention is not to be seen as limited by the foregoing description.

Having thus described the invention, it is claimed:
 1. A seed depthdevice for an agricultural planter comprising: an electric motor; anactuator driven by the electric motor and constructed and arranged tomove between a home position and a full extension position; a first stopproximate to the actuator when in the home position; at least onecontroller including a computing processor and a computer readablestorage medium configured to control the electric motor; and a seeddepth auto-learn system at least in-part stored and executed by the atleast one controller, the seed depth auto-learn system configured tolearn the home position based at least in-part on the actuator stallingupon the first stop, wherein the seed depth auto-learn system includes apositive direction stall module configured to; initiate a first positivemotion of the seed depth device in a positive direction for apredetermined first distance, determine if the seed depth device isstalled, initiate a second positive motion in the positive direction fora predetermined second distance if not stalled, determine if the seeddepth device is stalled, and record an unverified home position afterthe seed depth device has stalled.
 2. The seed depth device set forth inclaim 1, wherein the seed depth auto-learn system is configured toiteratively move the actuator toward the first stop until the actuatorcontacts the first stop.
 3. The seed depth device set forth in claim 2,wherein the seed depth auto-learn system is configured to move theactuator a prescribed distance away from the stop to establish the homeposition.
 4. The seed depth device set forth in claim 3, furthercomprising: a second stop spaced from the first stop by a distancegreater than a full travel distance of the actuator and prescribe in thecontroller, the second stop being proximate to the actuator when in thefull extension position, wherein the seed depth auto-learn system isconfigured to determine the occurrence of an impediment-stall therebydetermining successful completion of the execution.
 5. The seed depthdevice set forth in claim 1, wherein the seed depth auto-learn systemincludes a full negative travel module configured to; initiate anegative motion of the seed depth device in a negative direction for thefull travel distance, determine if the seed depth device is stalled uponcease of the negative motion, and terminate execution of the seed depthauto-learn system if the seed depth device is stalled upon cease of thenegative motion, and verify the unverified home position if the seeddepth device translated over the entire full travel distance.
 6. Theseed depth device set forth in claim 5, wherein the seed depthauto-learn system includes a return to home module configured to;initiate a third positive motion of the seed depth device in thepositive direction and to the home position if the full negative travelmodule determines that the seed depth device has translated the fulltravel distance; determine if the seed depth device isimpediment-stalled upon cease of third positive motion; recordsuccessful learning of seed depth positioning if the third positivemotion is not impediment-stalled; and terminate learning of seed depthpositioning if the third positive motion is impediment-stalled.
 7. Theseed depth device set forth in claim 6, wherein the positive directionstall module is configured to; establish a stalled position upondetermination that the seed depth device is stalled, and initiatenegative motion from the stalled position in a negative direction for aprescribed distance to establish the unverified home position, and toprevent stalling of the seed depth device during normal operation. 8.The seed depth device set forth in claim 7, wherein the initiation ofthe second positive motion is iterative.
 9. The computer program productset forth in claim 7, wherein the predetermined first distance, thepredetermined second distance, and the prescribed distance areassociated with revolutions of the electric motor.
 10. The computerprogram product set forth in claim 7, wherein the stalled position isindicative of a stop-stall or an impediment-stall.
 11. A computerprogram product for learning seed depth positioning of a seed depthdevice, the computer program product comprising: a positive directionstall module configured to; initiate a first positive motion of the seeddepth device in a positive direction for a predetermined first distance,determine if the seed depth device is stalled upon cease of the firstpositive motion, initiate a second positive motion in the positivedirection for a predetermined second distance if not stalled, determineif the seed depth device is stalled upon cease of the second positivemotion, and record a unverified home position after the seed depthdevice has stalled; and a full negative travel module configured to;initiate negative motion of the seed depth device in a negativedirection for a predetermined full travel distance, determine if theseed depth device is stalled upon cease of negative motion, verify theunverified home position if the seed depth device is not stalled uponcease of negative motion, and terminate if the seed depth device isstalled.
 12. The computer program product set forth in claim 11, furthercomprising: a return to home module configured to; initiate a thirdpositive motion of the seed depth device in the positive direction andto the verified home position if the full negative travel moduledetermines that the seed depth device has translated the predeterminedfull travel distance, determine if the seed depth device isimpediment-stalled upon cease of third positive motion, recordsuccessful learning of seed depth positioning if the third positivemotion is not impediment stalled, and terminate learning of seed depthpositioning if the third positive motion is impediment stalled.
 13. Thecomputer program product set forth in claim 11, wherein the positivedirection stall module is configured to; establish a stalled positionupon determination that the seed depth device is stalled, and initiatenegative motion from the stalled position in a negative direction for aprescribed distance to establish the unverified home position and toprevent stalling of the seed depth device during normal operation. 14.The computer program product set forth in claim 13, wherein theinitiation of the second positive motion is iterative.
 15. The computerprogram product set forth in claim 11, wherein the full travel distanceis directly measured between the home position and a full extensionposition of the seed depth device.
 16. The computer program product setforth in claim 11, wherein the full negative travel module is configuredto; return to start of the full negative travel module if the seed depthdevice is not stalled and does not translate over the predetermined fulltravel distance.